#ifndef FT_REFINEMENT_PROPERTIES
#define FT_REFINEMENT_PROPERTIES


/* These operators, generate the refinements that subsume all the objects in "objects": */ 
List<FeatureTerm> *DSpecializationL0_properties(FeatureTerm *ft,List<FeatureTerm> *objects,int max_depth,Ontology *ontology,FTKBase *domain_model);
List<FeatureTerm> *DSpecializationL1P_properties(FeatureTerm *ft,List<FeatureTerm> *objects,int max_depth,Ontology *ontology,FTKBase *domain_model);
List<FeatureTerm> *DSpecializationL1S_properties(FeatureTerm *ft,List<FeatureTerm> *objects,List<Path> *set_paths,Ontology *ontology,int max_depth,FTKBase *domain_model);
List<FeatureTerm> *DSpecializationL2_properties(FeatureTerm *ft,List<FeatureTerm> *objects,List<Path> *set_paths,Ontology *ontology,int max_depth,FTKBase *domain_model);

List<FeatureTerm> *DSpecialization_properties(FeatureTerm *ft,List<FeatureTerm> *objects,Ontology *ontology,FTKBase *domain_model,int max_depth,List<Path> *set_paths,bool sort,bool feature,bool equality,bool sets,bool costants);



#endif
